package cn.lg.soar.cms.biz.modules.other.service;

import cn.lg.soar.cms.api.model.RegionDTO;
import cn.lg.soar.cms.biz.modules.other.entity.Region;
import cn.lg.soar.cms.biz.modules.other.model.RegionTreeCache;
import cn.lg.soar.database.base.service.IBaseService;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * Region服务层接口
 * 区域
 * @author luguoxiang
 * @since 2022-08-04
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
public interface IRegionService extends IBaseService<Region> {

    /**
     * 获取树形数据
     * @return
     */
    List<RegionTreeCache> tree();

    /**
     * 获取树形数据
     * @param parentId
     * @return
     */
    List<RegionTreeCache> tree(Integer parentId);

    /**
     * 根据id获取区域及其上级区域
     * @param id
     * @return
     */
    List<RegionDTO> getRegionPath(int id);

    /**
     * 获取区域名称
     * @param id
     * @return
     */
    List<String> getNameList(int id);

    /**
     * 获取名称map
     * @param ids
     * @return
     */
    Map<Integer, List<String>> getNameListMap(Collection<Integer> ids);

}
